From: Lars Ingebrigtsen Date: Thu, 20 Jan 2022 06:44:49 +0000 (+0100) Subject: Add new bidi-string-strip-control-characters function X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~16^2~3360 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=7785463c8edbd83e0a7a4c2fe5c233949aa570f2;p=emacs.git Add new bidi-string-strip-control-characters function * lisp/international/characters.el (bidi-string-strip-control-characters): New function. --- diff --git a/etc/NEWS b/etc/NEWS index 47dbfba9c05..ac3b1dccf9c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -960,6 +960,10 @@ The input must be encoded text. * Lisp Changes in Emacs 29.1 +** New function 'bidi-string-strip-control-characters'. +This utility function is meant for displaying strings when it's +essential that there's no bidirectional context. + --- ** The Gnus range functions have been moved to a new library, range.el. All the old names have been made obsolete. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index ce23e995c11..63ac455ea6a 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1541,6 +1541,12 @@ Setup `char-width-table' appropriate for non-CJK language environment." #x2069) ; ?\N{pop directional isolate} "List of bidirectional control characters.") +(defun bidi-string-strip-control-characters (string) + "Strip bidi control characters from STRING and return the result." + (apply #'string (seq-filter (lambda (char) + (not (memq char bidi-control-characters))) + string))) + (defun update-glyphless-char-display (&optional variable value) "Make the setting of `glyphless-char-display-control' take effect. This function updates the char-table `glyphless-char-display',